
# 需要将一个算法改造为生成器，只需要将原始的print改为yield
def fib(max):
    n, a, b = 0, 0, 1
    while n < max:
        # print(b)
        yield b
        a, b = b, a + b
        n = n + 1
    return 'done'


# 这里传入参数以后会创建一个生成器对象，可以通过for循环遍历里面的元素，
# 也可以用next(g)获取下一个生成的对象 这里的g是生成器对象
g = fib(20)
print(g)

for i in g:
    print(i)